
(function () {
    'use strict';

    angular.module('app.citas')
        .controller('listarCitasCtrl', ['$scope', '$filter', 'citasService','$timeout','UsuariosService', listarCitasCtrl]);

        function listarCitasCtrl($scope, $filter, citasService, $timeout, UsuariosService){
            $scope.modal = {};
            $scope.cita = {};

            $scope.loadCalendar = function(){

                citasService.listar()
                .success(function (response) {
                    var events = angular.fromJson(response);

                    for (var i in events) {
                        //var cliente = getClienteById(events[i].IdCliente);
                        events[i].title = 'Estado ' + events[i].Estado + ' Fecha y Hora '+ events[i].FechaHora + ' Cliente '+ events[i].IdCliente + ' Encargado '+ events[i].IdEncargado + ' Tipo de cita ' + events[i].TipoCita;
                        events[i].start = events[i].FechaHora;
                    }

                    inicializarCalendar(events);

                }).error(function () {
                    console.log(arguments);
                });
            };

            function inicializarCalendar(eventos){
                 $('#calendar').fullCalendar({
                    header: {
                        left: 'prev,next today',
                        center: 'title',
                        right: 'agendaDay'
                    },

                    editable: true,
                    eventLimit: true,
                    defaultView: 'agendaDay',
                    /*minTime: '05:00:00',
                    maxTime:'23:00:00',*/
                    events: eventos /* [
                        {
                            title: 'Cita Medicion',
                            start: '2015-02-01'
                        }
                    ]*/,
                    eventClick: function(event, element) {

                        /*event.title = "CLICKED!";
                        console.log(event);
                        console.log(element);

                        $('#calendar').fullCalendar('updateEvent', event);
                        */
                        console.log(event);
                        console.log(element);

                    },
                    dayClick: function(date, jsEvent, view) {
                        $('#dataModalCitas').modal('show');

                        citasService.listarTiposCitas()
                        .success(function (response) {
                            $scope.tiposCitas = angular.fromJson(response);
                            $scope.modal.fecha = date.format(); 

                        }).error(function () {
                            console.log(arguments);
                        });

                        citasService.listarFuncionarios()
                        .success(function (response) {
                            $scope.funcionarios = angular.fromJson(response);

                        }).error(function () {
                            console.log(arguments);
                        });

                        UsuariosService.read()
                        .success(function (response) {
                            $scope.clientes = angular.fromJson(response);

                        }).error(function () {
                            console.log(arguments);
                        });
                    },
                    eventRender: function(event, element, view)
                    {
                        console.log(event);
                        console.log(element);
                    }
                });
            }

            $scope.registrarCita = function(){
                $scope.cita.estado = 'P';
                $scope.cita.FechaHoraCita = $scope.modal.fecha;

                citasService.registrar($scope.cita)
                .success(function (response) {
                    //alert('Cita creada');
                    //$scope.loadCalendar();
                    $('#calendar').fullCalendar( 'renderEvent', {start:$scope.cita.FechaHoraCita,title:'Estado: ' + $scope.cita.estado + 'Fecha y hora: ' + $scope.cita.FechaHoraCita + 'Cliente '+ $scope.cita.IdCliente + ' Encargado '+ $scope.cita.IdEncargado + ' Tipo de cita ' + $scope.cita.IdTipoCita});
                    $('#dataModalCitas').modal('hide');
                }).error(function () {
                    console.log(arguments);
                });
            }

            $('#dataModalCitas').on('hidden.bs.modal', function (e) {
                $scope.cita = {};
            })
        }


})();
